<?php

/**
 * corregir actions.
 *
 * @package    SCCEIC
 * @subpackage corregir
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
 */
class corregirActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
    $this->categorias = CategoriaPeer::doSelect(new Criteria());
    
  }
  
  public function executeListar(sfWebRequest $request)
  {
  	$cat = $request->getParameter("cat");
  	$criteria = new Criteria();
  	$criteria->add(NominadoPeer::ID_CATEGORIA,$cat,Criteria::EQUAL);
  	$this->categoria = CategoriaPeer::retrieveByPK($cat);
  	$this->nominados = NominadoPeer::doSelect($criteria);
  	$this->fotos = array( 'c' => 'v');
  	$this->form = new FieldNominadoForm(null,array('url' => $this->getController()->genUrl('nominar/ajaxnom')));
  	foreach($this->nominados as $nominado)
  	{
  		$noms = $nominado->getNominos();
  		$this->fotos = array_merge($this->fotos,array( "_".$nominado->getId() => $noms));
  	
  	}  	
  }
  
  public function executeExec(sfWebRequest $request)
  {
  	$cat = $request->getParameter("cat");
  	$action = $request->getParameter("accion");
  	$criteria = new Criteria();
  	$criteria->add(NominadoPeer::ID_CATEGORIA,$cat,Criteria::EQUAL);
  	
  	$nominados = NominadoPeer::doSelect($criteria);
  	$listNom = array();
  	
  	foreach($nominados as $nom)
  	{
  		$isthere = $request->getParameter($nom->getId(),"off");
  		if($isthere=="on")
  			$listNom = array_merge($listNom,array($nom->getId()));
  	}
  	
  	if($action=="delete")
  	{
  		foreach($listNom as $pk)
  			NominadoPeer::doDelete($pk);
  			
  		$this->redirect('corregir/listar?cat='.$cat);
  	}
  	else if($action=="group")
  	{
  		$def = NominadoPeer::retrieveByPK($listNom[0]);
  		$nombre_grupo = $request->getParameter("autocomplete_nominado",$def->getNombre());
  		$nuevo = new Nominado();
  		$nuevo->setNombre($nombre_grupo);
  		$nuevo->setIdCategoria($cat);
  		$nuevo->save();
  		foreach($listNom as $pk)
  		{
  			$viejo = NominadoPeer::retrieveByPK($pk);
  			$votos = $viejo->getNominos(new Criteria());
  			foreach($votos as $v)
  			{
  				$nuevoVoto = new Nomino();
  				$nuevoVoto->setIdNominado($nuevo->getId());
  				$nuevoVoto->setIdUsuario($v->getIdUsuario());
  				//Revisar si ya hay alguien con id y usuario igual... si lo hay no agregar
  				if(is_null(NominoPeer::retrieveByPK($nuevoVoto->getIdNominado(),$nuevoVoto->getIdUsuario())))
  				{
	  				$nuevoVoto->setFile($v->getFile());
	  				$nuevoVoto->setMostrarfoto($v->getMostrarFoto());
	  				NominoPeer::doDelete($v);
	  				$nuevoVoto->save();
  				}
  				else
  					NominoPeer::doDelete($v);
  				  				
  			}  			
  			NominadoPeer::doDelete($pk);
  		}
  		$this->redirect('corregir/listar?cat='.$cat);  		
  	}
  	$this->accion = $action;
  	/*else
  		$this->redirect404();*/
  }
}
